Syncopation metrics

This notebook show how to compute the level of syncopation of all the patterns in the library of rhythms in pyrhythm


In [14]:
import sys
sys.path.append('../')  # needed to run the examples from within the package folder

from pyrhythm.library import patterns_as_list
from pyrhythm import Pattern
from pyrhythm.metrics import LHL
from pyrhythm.metrics import offBeatness

from IPython.display import HTML

htmlTable = """<table>
<tr>
<td>Pattern Name</td>
<td>LHL</td>
<td>LHL/beat</td>
<td>offBeatness</td>
<td>offBeatness/beat</td>
</tr>
"""

for pat in [Pattern(**p) for p in patterns_as_list]:
    s = LHL(pat)
    nb = pat.num_bars()*pat.numerator
    ob = offBeatness(pat)
    list_to_display = (pat.name, s, float(s)/nb, ob, ob/nb)
#     print "{: <35}\t{:2.0f}\t{:02.2f}\t{:2.0f}\t{:2.2f}".format(*list_to_display)
    htmlTable += "<tr><td>"
    htmlTable += "</td><td>".join("{}".format(k) for k in list_to_display)
    htmlTable += "</td></tr>"
    
htmlTable += "</table>"
h = HTML(htmlTable); h


Out[14]:
Pattern Name LHL LHL/beat offBeatness offBeatness/beat
Chapin15.00.6254.00.5
Chapin26.00.754.00.5
Chapin37.00.8754.00.5
Chapin46.00.754.00.5
Chapin54.00.54.00.5
Chapin65.00.6254.00.5
Chapin75.00.6254.00.5
Chapin85.00.6254.00.5
Chapin95.00.6254.00.5
Chapin106.00.754.00.5
Essens011.00.254.01.0
Essens021.00.254.01.0
Essens031.00.254.01.0
Essens041.00.254.01.0
Essens051.00.254.01.0
Essens061.00.253.00.75
Essens0700.05.01.25
Essens081.00.255.01.25
Essens091.00.255.01.25
Essens101.00.252.00.5
Essens1100.04.01.0
Essens121.00.252.00.5
Essens132.00.54.01.0
Essens143.00.756.01.5
Essens153.00.756.01.5
Essens162.00.55.01.25
Essens172.00.55.01.25
Essens182.00.56.01.5
Essens193.00.755.01.25
Essens202.00.55.01.25
Essens212.00.56.01.5
Essens222.00.55.01.25
Essens232.00.55.01.25
Essens242.00.55.01.25
FitchTest0_(same_as_Fitch01)00.02.00.25
FitchTest56.00.751.00.125
FitchTest10_(same_as_Fitch26)9.01.1252.00.25
FitchTest1514.01.755.00.625
Fitch0100.02.00.5
Fitch0200.01.00.25
Fitch031.00.252.00.5
Fitch042.00.51.00.25
Fitch053.00.753.00.75
Fitch064.01.03.00.75
Fitch075.01.251.00.25
Fitch086.01.52.00.5
Fitch097.01.753.00.75
Fitch108.02.03.00.75
Fitch1110.02.52.00.5
Fitch1211.02.753.00.75
Fitch1312.03.03.00.75
Fitch1413.03.253.00.75
Fitch1514.03.54.01.0
Fitch1600.01.00.25
Fitch171.00.252.00.5
Fitch182.00.52.00.5
Fitch194.01.01.00.25
Fitch203.00.752.00.5
Fitch214.01.02.00.5
Fitch225.01.254.01.0
Fitch238.02.02.00.5
Fitch249.02.253.00.75
Fitch259.02.251.00.25
Fitch2610.02.52.00.5
Fitch2711.02.753.00.75
Fitch2814.03.54.01.0
Fitch2915.03.755.01.25
Fitch3015.03.755.01.25
Simple00.02.00.5
IGot8.01.02.00.25
IGotFull21.00.656259.00.28125
40feet3.00.753.00.75
Nozaradan12.00.3333333333333.00.5
Nozaradan200.03.00.375
Nozaradan34.00.6666666666673.00.5
Nozaradan43.00.53.00.5
Nozaradan56.00.755.00.625
PovelEssens0100.03.00.75
PovelEssens0200.03.00.75
PovelEssens0300.03.00.75
PovelEssens0400.03.00.75
PovelEssens0500.03.00.75
PovelEssens061.00.253.00.75
PovelEssens071.00.254.01.0
PovelEssens081.00.253.00.75
PovelEssens091.00.253.00.75
PovelEssens101.00.253.00.75
PovelEssens112.00.54.01.0
PovelEssens121.00.254.01.0
PovelEssens132.00.54.01.0
PovelEssens142.00.54.01.0
PovelEssens152.00.55.01.25
PovelEssens162.00.54.01.0
PovelEssens173.00.755.01.25
PovelEssens183.00.755.01.25
PovelEssens192.00.54.01.0
PovelEssens203.00.755.01.25
PovelEssens214.01.04.01.0
PovelEssens223.00.754.01.0
PovelEssens231.00.253.00.75
PovelEssens243.00.754.01.0
PovelEssens251.00.253.00.75
PovelEssens266.01.55.01.25
PovelEssens275.01.255.01.25
PovelEssens283.00.754.01.0
PovelEssens294.01.04.01.0
PovelEssens303.00.754.01.0
PovelEssens315.01.254.01.0
PovelEssens325.01.254.01.0
PovelEssens333.00.754.01.0
PovelEssens343.00.754.01.0
PovelEssens354.01.04.01.0
Shiko2.00.52.00.5
Son4.01.01.00.25
Rumba6.01.52.00.5
Soukous7.01.752.00.5
Gahu5.01.251.00.25
Bossa6.01.52.00.5
Bossa26.01.52.00.5
FumeFume23.00.51.00.166666666667
Soli1.00.1666666666671.00.166666666667
Tambu3.00.52.00.333333333333
Bembe4.00.6666666666673.00.5
Bembe23.00.52.00.333333333333
Yoruba3.00.52.00.333333333333
Tonada2.00.3333333333331.00.166666666667
Asaadua2.00.3333333333331.00.166666666667
Sorsonet00.01.00.166666666667
Bemba5.00.8333333333332.00.333333333333
Ashanti3.00.52.00.333333333333
FumeFume33.00.51.00.166666666667

In [ ]: